package com.imooc.dataobject;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.imooc.enums.CategoryEnum;
import com.imooc.enums.ProductStatusEnum;
import com.imooc.enums.codeEnum;
import com.imooc.utils.EnumUtil;
import lombok.Data;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 1. dao层的开发 ----> Jpa数据库操作代理。
 */
@Entity
@Data
@DynamicUpdate
public class ProductInfo {
    @Id
    private String productId;
    private String productName;
    private BigDecimal productPrice;
    private Integer productStock;
    private String productDescription;
    private String productIcon;
    //0-上架， 1 - 下架。
    private Integer productStatus;
    //对应于categoryType
    private Integer categoryType;

    private Date createTime;
    private Date updateTime;

    // public enum ProductStatusEnum implements codeEnum{
    // 一定要实现这个借口才能继续使用
    @JsonIgnore
    public ProductStatusEnum getProductStatusEnum() {
        return EnumUtil.getByCode(productStatus, ProductStatusEnum.class);
    }

    @JsonIgnore
    public CategoryEnum getCategoryEnum(){
        return EnumUtil.getByCode(categoryType, CategoryEnum.class);
    }

    //TIME 由  @DynamicUpdate 自动数据库管理。
    //GET SET 方法有lombok 插件 和 @data自动完成设置。

}


